package com.quanyan.place.service;


import com.quanyan.api.APIResponse;
import com.quanyan.common.Plugin.PageObj;
import com.quanyan.orderpay.response.RespPreOrder;
import com.quanyan.place.entity.*;
import com.quanyan.place.entity.apireq.*;
import com.quanyan.place.entity.apiresp.*;
import com.quanyan.place.entity.vo.DictPlaceDataVo;
import com.quanyan.place.entity.vo.PlaceScanOrderPayVo;
import com.quanyan.place.entity.vo.RespPlaceRevenueStats;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 第三方场馆订单结算模块
 */
public interface PlaceOrderSetterService {

    RespOrderSetterVo orderSetterList(ReqOrderSetterVo vo);

    List<RespOrderSetterVo> getPlaceOrderData(ReqOrderSetterVo reqOrderSetterVo);

    int  saveSetterOrderData(TbBizPlaceSetterDetail vo);

    /**
     * 获取要结算的订单
     * @param placeId
     * @return
     */
    List<TbBizPlaceSetterDetail> getSetterOrderDataBySupplierId(Integer placeId, Integer setterStatus, Date orderFinishStartTime, Date orderFinishEndTime);

    int saveExtractRecordData(TbBizPlaceExtractRecord record);

    int updateSetterOrderStatus(List<String> placeOrderIdList);

    RespExtractRecordVo extractRecordList(ReqExtractRecordVo vo);

    List<TbBizPlaceExtractRecord> getExtractRecordListBySupplierId(Integer supplierId, List<Integer> value, Date payStartTime, Date payEndTime);

    List<TbSupplier> getPlaceSupplier(ReqBusinessAccountVo reqBusinessAccountVo, boolean flag);

    int getPlaceSupplierCount(ReqBusinessAccountVo reqBusinessAccountVo);

    TbSupplier getBankAccountBySupplierId(Integer placeId);

    TbBizPlaceSetterDetail getMinOrMaxSetterDetailData(boolean flag, Integer status);

   int updateExtractInfoByExtractNo(ExtractCallBackVo extractVo);

    TbBizPlacePrivateOrder getOrderNoById(Integer id);
}